

// 创建 axios 实例
const axiosInstance = axios.create({
    // baseURL: 'http://101.34.75.156:8888',  // 替换为你的 API 基础 URL
    baseURL: 'http://localhost:8888',  // 替换为你的 API 基础 URL
    timeout: 10000,  // 请求超时设置
    headers: {
        'Content-Type': 'application/json',  // 默认是 JSON
    },
});

// 请求拦截器
axiosInstance.interceptors.request.use(
    (config) => {
        // 如果数据是 FormData，修改请求头，确保它为 multipart/form-data
        if (config.data instanceof FormData) {
            delete config.headers['Content-Type'];  // 删除默认的 Content-Type
            // 浏览器会自动设置正确的 Content-Type（包括 boundary）
        }
        return config;
    },
    (error) => {
        return Promise.reject(error);
    }
);

// 响应拦截器
axiosInstance.interceptors.response.use(
    (response) => {
        return response.data;
    },
    (error) => {
        if (error.response) {
            console.error(`Error ${error.response.status}: ${error.response.data.message}`);
        } else if (error.request) {
            console.error('No response from server');
        } else {
            console.error(`Error: ${error.message}`);
        }
        return Promise.reject(error);
    }
);

// 封装请求方法
const api = {
    get(url, params = {}) {
        return axiosInstance.get(url, { params });
    },

    post(url, data = {}) {
        // 判断如果是 FormData，直接发送 FormData 格式的请求
        if (data instanceof FormData) {
            return axiosInstance.post(url, data);  // 不需要特别处理 Content-Type
        } else {
            return axiosInstance.post(url, data);  // 其他情况，默认使用 JSON
        }
    },

    put(url, data = {}) {
        return axiosInstance.put(url, data);
    },

    delete(url) {
        return axiosInstance.delete(url);
    },
};

